package com.cbg.label.service;

import com.cbg.label.dto.LabelInfoDTO;
import com.cbg.label.dto.LabelListDTO;
import com.cbg.label.vo.LabelEditVO;
import com.cbg.label.vo.LabelInfoVO;
import com.cbg.label.vo.LabelQueryVO;
import com.shuyuwl.core.vo.PageVO;
import org.springframework.data.domain.Page;

import java.util.List;

/**
 * 标签库，存放所有已创建的标签 service
 *
 * @author wangjuzheng
 * @since 2019-10-16
 */
public interface IZfwLabelService {

    /**
     * 获取标签信息
     *
     * @param labelQueryVO 标签查询模型
     * @param pageVO        分页参数
     * @return 标签分页模型
     */
    Page<LabelListDTO> getLabels(LabelQueryVO labelQueryVO, PageVO pageVO);

    /**
     * 获取标签详情
     *
     * @param id 标签id
     * @return 标签信息DTO
     */
    LabelInfoDTO getLabel(Long id);

    /**
     * 标签的保存
     *
     * @param labelInfoVO 添加标签数据模型
     */
    void addLabel(LabelInfoVO labelInfoVO);

    /**
     * 标签的保存
     *
     * @param labelEditVO 更新标签数据模型
     */
    void updateLabel(LabelEditVO labelEditVO);

    /**
     * 标签状态的修改
     *
     * @param ids    标签id
     * @param status 标签状态{0:启用,1:冻结,2:删除}
     */
    void updateStatus(List<Long> ids, Byte status);

    /**
     * 标签的删除
     *
     * @param ids 标签id
     */
    void deleteLabel(List<Long> ids);
}
